8761
22679
Bir JSON dosyasında yorumları kullanabilir miyim? Öyleyse nasıl? 
1
2
Sonraki
Hayır.
JSON yalnızca veridir ve bir yorum eklerseniz, o zaman da veri olur.
JSON verilerini kullanan uygulamalar tarafından yok sayılması gereken "_comment" (veya başka bir şey) adında belirlenmiş bir veri öğesine sahip olabilirsiniz.
JSON verilerinin ne olacağını önceden veya en azından yapısını bilmeleri gerektiğinden, JSON'u oluşturan / alan süreçlerde muhtemelen daha iyi yorum yaparsınız.
Ama karar verdiyseniz:
{
"_comment": "yorum metni buraya gelecek ...",
"sözlük": {
"title": "örnek sözlük",
"GlossDiv": {
"title": "S",
"Parlaklık Listesi": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standart Genelleştirilmiş Biçimlendirme Dili",
"Kısaltma": "SGML",
"Abbrev": "ISO 8879: 1986",
"GlossDef": {
"para": "DocBook gibi biçimlendirme dilleri oluşturmak için kullanılan bir meta biçimlendirme dili.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "işaretleme"
}
}
}
}
}
|
Hayır, //… veya / *… * / biçimindeki yorumlara JSON'da izin verilmez. Bu cevap şunlara dayanmaktadır:
https://www.json.org
RFC 4627:
JavaScript Nesne Gösterimi (JSON) için application / json Medya Türü
RFC 8259 JavaScript Nesne Gösterimi (JSON) Veri Değişim Biçimi (RFC 4627, 7158, 7159'un yerini alır)
|
İsterseniz yorumları ekleyin; ayrıştırmadan veya iletmeden önce bir minifier ile bunları çıkarın.
JSON bloğundan yorumları ve boşlukları çıkaran ve onu ayrıştırılabilen geçerli JSON yapan JSON.minify () yayınladım. Yani, şu şekilde kullanabilirsiniz:
JSON.parse (JSON.minify (my_str));
Yayınladığımda, bu fikre bile katılmayan büyük bir tepki aldım, bu yüzden JSON'da yorumların neden mantıklı olduğuna dair kapsamlı bir blog yazısı yazmaya karar verdim. JSON'un yaratıcısının şu dikkate değer yorumunu içerir:
Açıklama eklemek istediğiniz yapılandırma dosyalarını saklamak için JSON kullandığınızı varsayalım. Devam edin ve beğendiğiniz tüm yorumları ekleyin. Ardından, JSON ayrıştırıcınıza teslim etmeden önce JSMin'den geçirin. - Douglas Crockford, 2012
Umarım bu, JSON.minify () 'ın neden yararlı olabileceğine katılmayanlar için yararlıdır.
|
Yorumlar tasarım gereği JSON'dan kaldırılmıştır.
JSON'dan yorumları kaldırdım çünkü insanların bunları ayrıştırma direktiflerini tutmak için kullandıklarını gördüm, bu da birlikte çalışabilirliği yok edecek bir uygulama. Yorum eksikliğinin bazı insanları üzdüğünü biliyorum ama olmamalı.
Açıklama eklemek istediğiniz yapılandırma dosyalarını saklamak için JSON kullandığınızı varsayalım. Devam edin ve beğendiğiniz tüm yorumları ekleyin. Ardından, JSON ayrıştırıcınıza teslim etmeden önce JSMin'den geçirin.
Kaynak: G + 'da Douglas Crockford tarafından yapılan basın açıklaması
|
JSON yorumları desteklemiyor. Ayrıca hiçbir zaman yorumların gerekli olduğu yapılandırma dosyaları için kullanılması amaçlanmamıştır.
Hjson, insanlar için bir yapılandırma dosyası formatıdır. Rahat sözdizimi, daha az hata, daha fazla yorum.
JavaScript, Java, Python, PHP, Rust, Go, Ruby, C ++ ve C # kitaplıkları için hjson.github.io'ya bakın.
|
SORUMLULUK REDDİ: GARANTİNİZ GEÇERSİZDİR
Belirtildiği gibi, bu hack spesifikasyonun uygulanmasından yararlanır. Tüm JSON ayrıştırıcıları bu tür JSON'u anlamaz. Özellikle akış ayrıştırıcıları boğulacaktır.
Bu ilginç bir merak, ama onu gerçekten hiçbir şey için kullanmamalısın. Orijinal cevap aşağıdadır.
Ayrıştırmayı etkilemeyecek veya temsil edilen verileri herhangi bir şekilde değiştirmeyecek bir JSON dosyasına yorum koymanıza izin veren küçük bir hack buldum.
Bir nesne değişmezi bildirirken aynı anahtarla iki değer belirtebilirsiniz ve sonuncusu önceliklidir. İster inanın ister inanmayın, JSON ayrıştırıcılarının da aynı şekilde çalıştığı ortaya çıktı. Bu nedenle, kaynak JSON'da ayrıştırılmış nesne temsilinde bulunmayacak yorumlar oluşturmak için bunu kullanabiliriz.
({a: 1, a: 2});
// => Nesne {a: 2}
Object.keys (JSON.parse ('{"a": 1, "a": 2}')). Uzunluk;
// => 1
Bu tekniği uygularsak, yorum yaptığınız JSON dosyanız şöyle görünebilir:
{
"api_host": "API sunucunuzun ana bilgisayar adı. Bağlantı noktasını da belirtebilirsiniz.",
"api_host": "hodorhodor.com",
"retry_interval": "Başarısız API çağrılarının yeniden denenmesi arasındaki saniye cinsinden aralık",
"retry_interval": 10,
"auth_token": "Kimlik doğrulama jetonu. Geliştirici kontrol panelinizde" Ayarlar "ın altında bulunur",
"auth_token": "5ad0eb93697215bc0d48a7b69aa6fb8b",
"favorite_numbers": "Tüm zamanların en sevdiğim sayılarını içeren bir dizi",
"Favorite_numbers": [19, 13, 53]
}
Yukarıdaki kod geçerli JSON'dur. Ayrıştırırsanız, şuna benzer bir nesne elde edersiniz:
{
"api_host": "hodorhodor.com",
"retry_interval": 10,
"auth_token": "5ad0eb93697215bc0d48a7b69aa6fb8b",
"Favorite_numbers": [19,13,53]
}
Bu, yorumların izinin olmadığı ve tuhaf yan etkilerinin olmayacağı anlamına gelir.
Mutlu hacklemeler!
|
YAML kullanmayı düşünün. Neredeyse bir JSON üst kümesidir (neredeyse tüm geçerli JSON, geçerli YAML'dir) ve yorumlara izin verir.
|
Yapamazsın. En azından json.org'a hızlı bir bakıştan edindiğim deneyim bu.
JSON'un sözdizimi vardıro sayfada görselleştirildi. Yorumlarla ilgili herhangi bir not yok.
|
Bazı ayrıştırıcılar C ++ tarzı yorumları desteklese de yorumlar resmi bir standart değildir. Kullandığım biri JsonCpp. Örneklerde şu var:
// Yapılandırma seçenekleri
{
// Metin için varsayılan kodlama
"encoding": "UTF-8",
// Başlangıçta yüklenen eklentiler
"eklentiler": [
"python",
"c ++",
"yakut"
],
// Sekme girinti boyutu
"girinti": {"uzunluk": 3, "use_space": true}
}
jsonlint bunu doğrulamaz. Bu nedenle yorumlar ayrıştırıcıya özgü bir uzantıdır ve standart değildir.
Başka bir ayrıştırıcı JSON5'tir.
JSON TOML'a bir alternatif.
Diğer bir alternatif jsonc'dir.
Nlohmann / json'ın en son sürümü, ayrıştırmayla ilgili yorumları yok saymak için isteğe bağlı desteğe sahiptir.
|
Bunun yerine bir JSON şeması yazmalısınız. JSON şeması şu anda önerilen bir İnternet taslak belirtimidir. Şema, dokümantasyonun yanı sıra JSON verilerinizi doğrulamak için de kullanılabilir.
Misal:
{
"description": "Bir kişi",
"type": "nesne",
"özellikleri":
{
"isim":
{
"type": "string"
},
"yaş":
{
"type": "tamsayı",
"maksimum": 125
}
}
}
Açıklama şeması özniteliğini kullanarak dokümantasyon sağlayabilirsiniz.
|
Jackson'ı JSON ayrıştırıcınız olarak kullanıyorsanız, yorumlara izin vermek için şu şekilde etkinleştirirsiniz:
ObjectMapper mapper = new ObjectMapper (). Configure (Feature.ALLOW_COMMENTS, true);
O zaman şöyle yorumlarınız olabilir:
{
anahtar: "değer" // Yorum
}
Ayrıca, ayarlayarak # ile başlayan yorumlarınız da olabilir:
mapper.configure (Feature.ALLOW_YAML_COMMENTS, true);
Ancak genel olarak (daha önce yanıtlandığı gibi) şartname yorumlara izin vermez.
|
JSON'a yorum koymanıza olanak tanıyan Google Firebase belgelerinde bulduklarım:
{
"//": "Bazı tarayıcılar bunu push bildirimlerini etkinleştirmek için kullanır.",
"//": "Tüm projeler için aynıdır, bu projenizin gönderen kimliği değildir",
"gcm_sender_id": "1234567890"
}
|
HAYIR. JSON eskiden yorumları desteklerdi, ancak bunlar kötüye kullanıldı ve standarttan çıkarıldı.
JSON'un yaratıcısından:
JSON'dan yorumları kaldırdım çünkü insanların bunları ayrıştırma direktiflerini tutmak için kullandıklarını gördüm, bu da birlikte çalışabilirliği yok edecek bir uygulama. Yorum eksikliğinin bazı insanları üzdüğünü biliyorum ama olmamalı. - Douglas Crockford, 2012
Resmi JSON sitesi JSON.org adresindedir. JSON, ECMA International tarafından bir standart olarak tanımlanmıştır. Standartların revize edilmesi için her zaman bir dilekçe süreci vardır. Ek açıklamaların çeşitli nedenlerle JSON standardına eklenmesi olası değildir.
JSON, tasarım gereği kolayca ters mühendislik uygulanabilen (insan ayrıştırılmış) bir XML alternatifidir. Ek açıklamaların gereksiz olduğu noktaya kadar basitleştirilmiştir. Bir biçimlendirme dili bile değil. Amaç, istikrar ve birlikte çalışabilirliktir.
Nesne yöneliminin "has-a" ilişkisini anlayan herkes herhangi bir JSON yapısını anlayabilir - asıl mesele budur. Neredeyse evrensel bir veri yapısı olan düğüm etiketlerine (anahtar / değer çiftleri) sahip yönlendirilmiş döngüsel olmayan bir grafiktir (DAG).
Bu yalnızca ek açıklama gerekli olabilir "// Bunlar DAG etiketleridir". Anahtar isimleri gerektiği kadar bilgilendirici olabilir ve keyfi anlamsal uyuşmaya izin verir.
Herhangi bir platform JSON'u birkaç satır kodla ayrıştırabilir. XML, birçok platformda geçerli olmayan karmaşık OO kitaplıkları gerektirir.
Ek açıklamalar, JSON'u daha az birlikte çalışabilir hale getirir. Gerçekten ihtiyacınız olan şey bir biçimlendirme dili (XML) olmadığı sürece ekleyecek başka hiçbir şey yoktur ve kalıcı verilerinizin kolayca ayrıştırılıp ayrıştırılması umrunda değildir.
ANCAK JSON'un yaratıcısının da gözlemlediği gibi, yorumlar için her zaman JS ardışık düzeni desteği olmuştur:
Devam edin ve beğendiğiniz tüm yorumları ekleyin.
Ardından, JSON ayrıştırıcınıza teslim etmeden önce JSMin'den geçirin. - Douglas Crockford, 2012
|
JSON dizesi olan metin dosyanız bir program tarafından okunacaksa, kullanmadan önce C veya C ++ tarzı yorumları çıkarmak ne kadar zor olur?
Cevap: Tek astarlı olacaktır. Bunu yaparsanız, JSON dosyaları yapılandırma dosyaları olarak kullanılabilir.
|
Okumak / seriyi kaldırma için ASP.NET ile Newtonsoft.Json kitaplığını kullanıyorsanız, JSON içeriğindeki yorumları kullanabilirsiniz:
// "ad": "dize"
// "kimlik": int
veya
/* Bu bir
yorum örneği * /
Not: Tek satırlı yorumlar yalnızca Newtonsoft Json'un 6'dan fazla sürümünde desteklenir.
Kutunun dışında düşünemeyenler için ek not: Yaptığım bir ASP.NET web uygulamasında temel ayarlar için JSON formatını kullanıyorum. Dosyayı okudum, Newtonsoft kütüphanesi ile ayarlar nesnesine dönüştürüyorum ve gerektiğinde kullanıyorum.
JSON dosyasındaki her bir ayar hakkında yorum yazmayı tercih ederim ve kullandığım kitaplık uygun olduğu sürece JSON formatının bütünlüğü umrumda değil.
Bunun, ayrı bir 'settings.README' dosyası oluşturmaktan ve içindeki ayarları açıklamaktan 'kullanımı / anlaşılması daha kolay' bir yol olduğunu düşünüyorum.
Bu tür kullanımla ilgili bir sorununuz varsa; üzgünüm, cin lambanın dışında. İnsanlar başka kullanımlar bulurduJSON biçimi ve bu konuda yapabileceğiniz hiçbir şey yok.
|
JSON'un arkasındaki fikir, uygulamalar arasında basit veri alışverişi sağlamaktır. Bunlar genellikle web tabanlıdır ve dil JavaScript'tir.
Bu tür yorumlara gerçekten izin vermez, ancak, verideki ad / değer çiftlerinden biri olarak bir yorum iletmek kesinlikle işe yarar, ancak bu verilerin özellikle ayrıştırma kodu tarafından göz ardı edilmesi veya işlenmesi gerekir.
Tüm bunlar, JSON dosyasının geleneksel anlamda yorumlar içermesi niyetinde değil. Sadece veri olmalı.
Daha fazla ayrıntı için JSON web sitesine bakın.
|
JSON, yorumları yerel olarak desteklemez, ancak yorumları kaldırmak için kendi kod çözücünüzü veya en azından ön işlemcinizi yapabilirsiniz, bu tamamen iyidir (yorumları görmezden geldiğiniz ve uygulamanızın JSON verilerini nasıl işlemesi gerektiğini yönlendirmek için bunları kullanmadığınız sürece) ).
JSON yorum içermiyor. JSON kodlayıcı yorumların çıktısını VERMEMELİDİR.
Bir JSON kod çözücü yorumları kabul edebilir ve yok sayabilir.
Yorumlar asla anlamlı bir şey iletmek için kullanılmamalıdır. Yani
JSON ne içindir.
Cf: Douglas Crockford, JSON şartnamesinin yazarı.
|
Yapılandırma dosyaları için bununla karşılaşıyorum. XML (ayrıntılı, grafiksel, çirkin, okunması zor) veya "ini" formatını (hiyerarşi yok, gerçek standart yok, vs.) veya Java "Özellikler" formatını (.ini gibi) kullanmak istemiyorum.
JSON ellerinden geleni yapabilir, ancak bu çok daha az ayrıntılı ve daha çok okunabilir - ve ayrıştırıcılar kolay ve birçok dilde her yerde bulunur. Bu sadece bir veri ağacı. Ancak bant dışı yorumlar genellikle "varsayılan" konfigürasyonları ve benzerlerini belgelemek için bir gerekliliktir. Yapılandırmalar asla "tam belgeler" olmalıdır, ancak gerektiğinde insan tarafından okunabilen kaydedilmiş veri ağaçları olacaktır.
Sanırım "geçerli" JSON için "#": "yorum" kullanılabilir.
|
JSON kitaplığınıza bağlıdır. Json.NET JavaScript tarzı yorumları / * yorum * / destekler.
Başka bir Yığın Taşması sorusuna bakın.
|
JSON, yapılandırma dosyaları ve diğer yerel kullanım için çok mantıklıdır çünkü her yerde bulunur ve XML'den çok daha basittir.
İnsanların verileri iletirken (geçerli olsun veya olmasın) JSON'da yorum yapmalarına karşı güçlü nedenleri varsa, muhtemelen JSON ikiye ayrılabilir:
JSON-COM: kablolu JSON veya JSON verilerini iletirken geçerli olan kurallar.
JSON-DOC: JSON belgesi veya dosyalarda veya yerel olarak JSON. Geçerli bir JSON belgesi tanımlayan kurallar.
JSON-DOC yorumlara izin verir ve boşlukların işlenmesi gibi diğer küçük farklılıklar olabilir. Ayrıştırıcılar, bir özellikten diğerine kolayca dönüşebilir.
Douglas Crockford'un bu konuda yaptığı açıklamalarla ilgili olarak (@Artur Czajka tarafından referans alınmıştır)
Açıklama eklemek istediğiniz yapılandırma dosyalarını saklamak için JSON kullandığınızı varsayalım. Devam edin ve beğendiğiniz tüm yorumları ekleyin. Ardından, JSON ayrıştırıcınıza teslim etmeden önce JSMin'den geçirin.
Genel bir yapılandırma dosyası sorunundan bahsediyoruz (çapraz dil / platform) ve o, JS'ye özgü bir yardımcı programla yanıt veriyor!
JSON'a özgü bir küçültmenin herhangi bir dilde uygulanabileceğinden emin olun,
ancak bunu standartlaştırın, böylece tüm dillerde ve platformlarda ayrıştırıcılar arasında her yerde bulunur, böylece insanlar özellikten yoksun olarak zamanlarını boşa harcamayı bırakırlar, çünkü bunun için iyi kullanım durumları vardır, sorunu çevrimiçi forumlarda araştırırlar ve insanlara bunun kötü bir fikir olduğunu söylemelerini sağlar veya metin dosyalarından çıkarılmış yorumların uygulanmasının kolay olduğunu öne sürerek.
Diğer konu birlikte çalışabilirliktir. Bir kitaplığınız veya API veya kendisiyle ilişkili bazı yapılandırma veya veri dosyalarına sahip herhangi bir alt sisteminiz olduğunu varsayalım. Ve bu alt sistem
farklı dillerden erişilebilir. Öyleyse insanlara şunu mu söylüyorsunuz: bu arada
Ayrıştırıcıya aktarmadan önce JSON dosyalarındaki yorumları çıkarmayı unutmayın!
|
JSON5 kullanıyorsanız, yorum ekleyebilirsiniz.
JSON5, insanların elle yazmasını ve sürdürmesini kolaylaştırmayı amaçlayan JSON için önerilen bir uzantıdır. Bunu, doğrudan ECMAScript 5'ten bazı minimum sözdizimi özellikleri ekleyerek yapar.
|
Dojo Toolkit JavaScript araç seti (en azından sürüm 1.4'ten itibaren), JSON'nize yorum eklemenize izin verir. Yorumlar / * * / biçiminde olabilir. Dojo Toolkit, JSON'yi dojo.xhrGet () çağrısı aracılığıyla kullanır.
Diğer JavaScript araç setleri benzer şekilde çalışabilir.
Bu, son bir seçenek belirlemeden önce alternatif veri yapıları (veya hatta veri listeleri) ile deney yaparken yardımcı olabilir.
|
JSON, çerçeveli bir protokol değildir. Dil içermeyen bir formattır. Yani bir yorumun formatı JSON için tanımlanmamıştır.
Birçok kişinin önerdiği gibi, kullanabileceğiniz yinelenen anahtarlar veya belirli bir anahtar yorum gibi bazı hileler vardır. Sana kalmış.
|
JSONP'de yorumlarınız olabilir, ancak salt JSON'da olamazsınız. Programımın Highcharts'taki şu örnekle çalışmasını sağlamak için bir saatimi harcadım: http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?
Bağlantıyı takip ederseniz göreceksiniz
? (/ * AAPLGoogle Finans API'sinden geçmiş OHLC verileri * /
[
/ * Mayıs 2006 * /
[1147651200000,67.79],
[1147737600000,64.98],
...
[1368057600000,456.77],
[1368144000000,452,97]
]);
Yerel klasörümde benzer bir dosyam olduğu için, Same-origin politikasıyla ilgili herhangi bir sorun olmadı, bu yüzden saf JSON kullanmaya karar verdim ... ve tabii ki $ .getJSON yorumlar yüzünden sessizce başarısız oluyordu.
Sonunda yukarıdaki adrese manuel bir HTTP isteği gönderdim ve içerik türünün text / javascript olduğunu fark ettim, çünkü JSONP saf JavaScript döndürüyor. Bu durumda yorumlara izin verilir. Ancak uygulamam içerik türü application / json döndürdü, bu yüzden yorumları kaldırmam gerekti.
|
Bu bir "yapabilir misin" sorusudur. Ve işte bir "evet" yanıtı.
Hayır, yan kanal verilerini JSON kodlamasına doldurmak için yinelenen nesne üyelerini kullanmamalısınız. (Bkz. RFC'de "Nesne içindeki adlar benzersiz OLMALIDIR").
Ve evet, JSON etrafında ayrıştırabileceğiniz yorumlar ekleyebilirsiniz.
Ancak, rastgele yan kanal verilerini geçerli bir JSON'a eklemenin ve çıkarmanın bir yolunu istiyorsanız, işte bir yanıt. JSON kodlamasında verilerin benzersiz olmayan temsilinden yararlanıyoruz. Bu, RFC'nin ikinci bölümünde "altı yapısal karakterden önce veya sonra boşluklara izin verilir" altında izin verilir *.
* RFC, dizelerden, sayılardan, "yanlış", "doğru" ve "boştan" açıkça bahsetmeden yalnızca "altı yapısal karakterden önce veya sonra beyaz boşluklara izin verilir" ifadesini belirtir. Bu ihmal TÜM uygulamalarda göz ardı edilir.
Öncelikle, JSON'nuzu küçülterek standartlaştırın:
$ jsonMin = json_encode (json_decode ($ json));
Ardından yorumunuzu ikili olarak kodlayın:
$ onaltılık = paketten çıkar ('H *', $ yorum);
$ yorumBinary = temel_çöntürme ($ onaltılık [1], 16, 2);
Sonra ikilinizi steg:
$ steg = str_replace ('0', '', $ yorumBinary);
$ steg = str_replace ('1', "\ t", $ steg);
İşte çıktınız:
$ jsonWithComment = $ steg. $ jsonMin;
|
Sorumluluk reddi beyanı: Bu aptalca
Aslında yorum eklemenin ve spesifikasyon dahilinde kalmanın bir yolu vardır (ek ayrıştırıcıya gerek yoktur). Yine de herhangi bir ayrıştırma olmadan insan tarafından okunabilir yorumlarla sonuçlanmayacaktır.
Aşağıdakileri kötüye kullanabilirsiniz:
Herhangi bir belirteçten önce veya sonra önemsiz boşluklara izin verilir.
Boşluk, aşağıdaki kodlardan birinin veya daha fazlasının herhangi bir dizisidir
noktalar: karakter tablosu (U + 0009), satır besleme (U + 000A), şaryo
dönüş (U + 000D) ve boşluk (U + 0020).
Keskin bir şekilde, bir yorum eklemek için bunu kötüye kullanabilirsiniz. Örneğin: yorumunuzu bir sekme ile başlatın ve bitirin. Yorumu base3'te kodlayın ve bunları temsil etmek için diğer boşluk karakterlerini kullanın. Örneğin.
010212 010202 011000 011000 011010 001012 010122 010121 011021 010202 001012 011022 010212 011020 010202 010202
(ASCII'de merhaba üç taban) Ancak 0 kullanım alanı yerine, 1 satır besleme ve 2 kullanım için satır başı kullanın.
Bu, sizi çok fazla okunamayan boşluk bırakacaktır (anında kodlamak / kodunu çözmek için bir IDE eklentisi yapmadığınız sürece).
Açık nedenlerden dolayı bunu hiç denemedim bile ve sen de yapmamalısın.
|
JSON, yorumlara izin vermez. Muhakeme tamamen aptalcadır, çünkü mantık yürütmeyi tamamen ortadan kaldıran yorumlar oluşturmak için JSON'un kendisini kullanabilirsiniz ve ayrıştırıcı veri alanını hiçbir sebep olmadan tamamen aynı sonuç ve potansiyel sorunlar için yükleyebilirsiniz: JSON yorum içeren dosya.
Yorum koymaya çalışırsanız (örneğin // veya / * * / veya # kullanarak), bazı ayrıştırıcılar başarısız olur çünkü bu kesinlikle değildir
JSON spesifikasyonu dahilinde. Yani bunu asla yapmamalısın.
Burada, örneğin, görüntü işleme sistemimin görüntü notlarını ve bunlarla ilgili bazı temel biçimlendirilmiş (yorum) bilgileri kaydettiği (altta):
{
"Notlar": [
{
"anchorX": 333,
"anchorY": 265,
"areaMode": "Elips",
"ExtendX": 356,
"kapsamY": 294,
"opaklık": 0,5,
"text": "Üstte eliptik alan",
"textX": 333,
"textY": 265,
"title": "Gösterim 1"
},
{
"anchorX": 87,
"anchorY": 385,
"areaMode": "Dikdörtgen",
"ExtendX": 109,
"kapsamY": 412,
"opaklık": 0,5,
"text": "Dik alan \ alt olmayan",
"textX": 98,
"textY": 385,
"title": "Gösterim 2"
},
{
"anchorX": 69,
"anchorY": 104,
"areaMode": "Çokgen",
"ExtendX": 102,
"kapsamY": 136,
"opaklık": 0,5,
"pointList": [
{
"i": 0,
"x": 83,
"y": 104
},
{
"i": 1,
"x": 69,
"y": 136
},
{
"i": 2,
"x": 102,
"y": 132
},
{
"i": 3,
"x": 83,
"y": 104
}
],
"text": "Basit çokgen",
"textX": 85,
"textY": 104,
"title": "Gösterim 3"
}
],
"imageXW": 512,
"imageYW": 512,
"imageName": "lena_std.ato",
"tinyDocs": {
"c01": "JSON resim gösterim verileri:",
"c02": "-------------------------",
"c03": "",
"c04": "Bu veriler, resim notlarını ve ilgili alanı içerir",
"c05": "bir için bir araç sağlayan seçim bilgisi",
"c06": "eliptik gösterimleri görüntülemek için resim galerisi",
"c07": "dikdörtgen, çokgen veya serbest alan göstergeleri",
"c08": "galeri ziyaretçisine gösterilen bir resmin üzerine.",
"c09": "",
"c10": "X ve Y konumlarının tümü görüntüdeUzay. Görüntü",
"c11": "çözünürlük imageXW ve imageYW olarak verilir, bu",
"c12": "gösterim alanlarını uygun şekilde ölçeklendirmek için kullanırsınız",
"c13": "Resmin gösterilmesi için konumlar ve boyutlar",
"c14": "ölçek ne olursa olsun.",
"c15": "",
"c16": "Elipsler için çapa, elipsin merkezidir",
"c17": "ve kapsamları sırasıyla X ve Y yarıçaplarıdır.",
"c18": "",
"c19": "Dikdörtgenler için bağlayıcı sol üsttedir ve",
"c20": "kapsama alanları sağ alttadır.",
"c21": "",
"c22": "Serbest Çizim ve Çokgen alan modları için noktaListesi",
"c23": "bir dizi numaralı XY noktası içerir. Alan ise",
"c24": "kapalıysa, son nokta", "ile aynı olacaktır
"c25": "önce, tek yapmanız gereken çizim yapmaktır",
"c26": "Listedeki noktalar arasındaki çizgiler. Çapa ve kapsam",
"c27": ", belirtilenin sol üst ve sağ alt kısmına ayarlanır",
"c28": "bölge ve basit bir dikdörtgen olarak kullanılabilir",
"c29": "bu türler üzerindeki fareyle üzerine gelme konumunu algıla",
"c30": "alanların.",
"c31": "",
"c32": "textx ve texty konumları temel konumlandırma sağlar",
"c33": "metin bilgilerini bulmanıza yardımcı olacak bilgiler",
"c34": "alanla ilişkili makul bir konumda",
"c35": "gösterge.",
"c36": "",
"c37": "Opaklık, 0 ile 1 arasında bir değerdir, burada .5 şunu temsil eder",
"c38": "% 50 opak arka plan ve 1.0 tamamen opaktır",
"c39": "zemin. Bölgelerin çizilmesi tavsiye edilir",
"c40": "yalnızca kullanıcı işaretçiyi görüntünün üzerine getirirse",
"c41": "ve bölgelerle ilişkili metnin çizilmesi",
"c42": "yalnızca kullanıcı işaretçiyi belirtilenin üzerine getirirse",
"c43": "bölge."
}
}
|
Projemiz için strip-json-comments kullanıyoruz. Aşağıdaki gibi bir şeyi destekler:
/ *
* Açıklama
* /
{
// gökkuşakları
"tek boynuzlu at": / * ❤ * / "kek"
}
Basitçe npm install --save strip-json-comments'u yüklemek ve kullanmak için:
var strip_json_comments = required ('strip-json-comments')
var json = '{/ * gökkuşakları * / "tek boynuzlu at": "kek"}';
JSON.parse (strip_json_comments (json));
// => {unicorn: 'kek'}
|
Benim durumumda, JSON yapısının çıktısından hemen önce hata ayıklama amacıyla yorum kullanmam gerekiyor. Bu yüzden, istemciyi bozmamak için HTTP başlığında hata ayıklama bilgilerini kullanmaya karar verdim:
header ("My-Json-Comment: Evet, bunun geçici bir çözüm olduğunu biliyorum ;-)");
|
Bir JSON öğesini parçalara ayırmak için "sahte yorum" satırları ekliyorum:
{
"#############################" : "Bölüm 1",
"veri1": "değer1",
"veri2": "değer2",
"#############################" : "Bölüm 2",
"data4": "değer3",
"data3": "değer4"
}
|
1
2
Sonraki
Oldukça aktif soru. Bu soruyu cevaplamak için 10 itibar kazanın. İtibar koşulu, bu sorunun istenmeyen postalardan ve yanıtlanmayan etkinliklerden korunmasına yardımcı olur.
Aradığın cevap değil mi? Json yorumlarıyla etiketlenmiş diğer sorulara göz atın veya kendi sorunuzu sorun.